Conventionally, there is known Electronic Control Units (ECUs) that are provided in a vehicle so as to control electronically respective various systems of the vehicle, such as an engine, a transmission, and a car navigation device. Each of these controllers reads and executes a control program that is preliminary held in a corresponding built-in microcontroller (hereinafter, may be referred to as “microcomputer”) so as to realize assigned various functions.
There exists, in some cases, a case where such a control program of the controller is to be updated (reprogrammed) when a function is added thereto or when an abnormality is found out after the fact (see Japanese Laid-open Patent Publication No. 2014-118071, for example).
At the time of this updating in the microcomputer, a control program is temporarily stopped for the updating and an updating program is started so as to rewrite the control program. For example, a microcomputer starts the updating program instead of the control program caused by a soft reset as an opportunity.
The soft reset is a restart method in a state where a device power source is held, and a microcomputer is rebooted in a state where information on a program start is expanded in a Random Access Memory (RAM), for example.
However, the above conventional technology has room for improvement in preventing an erroneous start of an updating program.
Specifically, the microcomputer determines whether or not the updating program is to be started, instead of the control program, with reference to information on the program start that is expanded in the above RAM, for example. However, there exists a fear that a soft reset causes RAM garbling and the like in this information expanded in the RAM so that the information has an incorrect value.
When the information has an incorrect value, a microcomputer does not start an updating program when the microcomputer is to start it, or reversely starts an updating program when the microcomputer is not to start it, namely there exists a fear that the microcomputer erroneously starts an updating program.